
#ifndef __PROFILER_H__
#define __PROFILER_H__

#include <string>

class Profiler {
public:
	static double getLenght(const std::string &name);
	static size_t getCount(const std::string &name);
	static void start(const std::string &name);
	static void stop(const std::string &name);
	static std::string print();
	static void clear();
	static void addTime(const std::string &name, double time);
};

struct Measure {
	Measure(const std::string& _name);	
	~Measure();	
private:
	std::string name;
	
	Measure(Measure&);
	Measure& operator =(Measure&);
};

#endif // __PROFILER_H__

